<HTML><HEAD><TITLE>#(?Sterm,?Var)</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(conjunto)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>#(?Sterm,?Var)</H1>
Var is the cardinality of the set term Sterm.


<DL>
<DT><EM>?Sterm</EM></DT>
<DD>A set term or a ground set.
</DD>
<DT><EM>?Var</EM></DT>
<DD>A free variable, a domain variable or an integer.
</DD>
</DL>
<H2>Description</H2>
   Var is the cardinality of the set term Sterm.  If Sterm is a known set
   and Var is free, Var is instanciated to the cardinality of Sterm.  If
   both are known, the predicate checks that Var is the cardinality of
   Sterm.  If Sterm is a set variable and Var is free, Var becomes a domain
   variable representing the set term cardinality.  The predicate is
   delayed and activated as soon as one of the bounds of Sterm or Var is
   modified.  If Sterm is a set variable and and Var is a domain variable
   it checks that Var contains the cardinality of Sterm.  It might infer a
   modification of the bounds of the set domain.

<P>

<H3>Fail Conditions</H3>
   None.


<H3>Resatisfiable</H3>
   No.
<H2>Examples</H2>
<PRE>
eclipse 3]: S `:: {}..{c,d}, S1= {1,2,3}, #(S \/ S1, V).

S = S{{} .. {c, d}}
S1 = {1, 2, 3}
V = Card{[3..5]}

Delayed goals:
        union_s({1, 2, 3}, S{{} .. {c, d}},
               R{{1, 2, 3} .. {1, 2, 3, c, d}})
        car_s(R{{1, 2, 3} .. {1, 2, 3, c, d}}, Card{[3..5]})
yes.



</PRE>
<H2>See Also</H2>
<A HREF="../../lib/conjunto/BNN-2.html">`:: / 2</A>, <A HREF="../../lib/conjunto/BE-2.html">`= / 2</A>
</BODY></HTML>
